Trigger হল একটি বিশেষ ধরনের ফাংশন যা ডেটাবেসে কোনো নির্দিষ্ট ইভেন্ট ঘটলে স্বয়ংক্রিয়ভাবে চলে। একটি ট্রিগার সাধারণত একটি নির্দিষ্ট DML (Data Manipulation Language) অপারেশন যেমন INSERT, UPDATE, অথবা DELETE এর সাথে যুক্ত থাকে, এবং যখন সেই অপারেশনটি এক নির্দিষ্ট টেবিলের উপর ঘটে তখন ট্রিগারটি কার্যকরী হয়।
Trigger এর কাজ
- ডেটাবেস ইভেন্টে সাড়া দেওয়া: ট্রিগার একটি নির্দিষ্ট ইভেন্ট ঘটলে চলতে থাকে, যেমন একটি রেকর্ড ইনসার্ট হওয়া, কোনো রেকর্ড আপডেট হওয়া অথবা কোনো রেকর্ড ডিলিট হওয়া।
- স্বয়ংক্রিয়ভাবে কার্যকরী হওয়া: একবার ট্রিগার সেট হয়ে গেলে, এটি নিজে থেকেই ইভেন্ট ঘটলে কাজ শুরু করবে এবং নির্ধারিত ফাংশন বা কাজ সম্পাদন করবে।
- ডেটাবেস কনসিস্টেন্সি বজায় রাখা: ট্রিগার ব্যবহার করা হয় ডেটাবেসের স্বয়ংক্রিয় যাচাই, কাস্টম লজিক প্রয়োগ, বা ডেটা অডিটিং এর জন্য।
Trigger এর উপাদান
একটি ট্রিগার প্রধানত তিনটি উপাদান দিয়ে গঠিত:
- Trigger Event: যে ইভেন্টটির জন্য ট্রিগার কার্যকর হবে (যেমন
INSERT,UPDATE,DELETE)। - Trigger Time: কখন ট্রিগারটি কার্যকর হবে। এটি হতে পারে:
- BEFORE: ইভেন্টটি ঘটার আগে ট্রিগারটি কার্যকর হবে।
- AFTER: ইভেন্টটি ঘটার পরে ট্রিগারটি কার্যকর হবে।
- Trigger Action: ট্রিগারটি যখন চলে তখন কী ধরনের কাজ সম্পাদিত হবে (যেমন একটি ফাংশন কল করা, একটি ডেটাবেস আপডেট করা ইত্যাদি)।
Trigger এর ব্যবহার
- ডেটা অডিটিং (Data Auditing): যখন কোনো ডেটা আপডেট বা ডিলিট হয়, তখন আপনি ট্রিগার ব্যবহার করে আগের ডেটা লগে রাখতে পারেন।
- ডেটা ভ্যালিডেশন (Data Validation): ইনসার্ট বা আপডেট অপারেশনের আগে বা পরে ডেটা ভ্যালিডেশন করতে ট্রিগার ব্যবহার করা যেতে পারে।
- অটোমেটিক ডেটা আপডেট (Automatic Data Update): একটি রেকর্ড আপডেট হলে স্বয়ংক্রিয়ভাবে সম্পর্কিত অন্যান্য টেবিলের ডেটাও আপডেট করতে ট্রিগার ব্যবহার করা যেতে পারে।
PostgreSQL-এ Trigger তৈরি করা
PostgreSQL এ ট্রিগার তৈরি করতে দুটি প্রধান পদক্ষেপ রয়েছে:
- Trigger Function তৈরি করা: প্রথমে আপনাকে একটি ফাংশন তৈরি করতে হবে, যা ট্রিগার দ্বারা চালিত হবে।
- Trigger তৈরি করা: এরপর ট্রিগারটি তৈরি করতে হবে এবং নির্দিষ্ট ইভেন্টের সাথে এটি যুক্ত করতে হবে।
1. Trigger Function তৈরি করা
ট্রিগার ফাংশন একটি প্ল/পিএলএ/এসএলএফ ফাংশন যা ট্রিগারের কার্যক্রম নির্দেশ করে। এটি একটি SQL বা প্ল/পিএলএ/এসএলএফ ফাংশন হতে পারে।
উদাহরণ: একটি সাধারণ ট্রিগার ফাংশন তৈরি করা:
CREATE OR REPLACE FUNCTION audit_user_update()
RETURNS TRIGGER AS LANGUAGE plpgsql;
এই ফাংশনটি audit_user_update নামে একটি ফাংশন তৈরি করবে, যা একটি ব্যবহারকারীকে আপডেট করার পরে লগে সেই পরিবর্তনগুলি সংরক্ষণ করবে।
2. Trigger তৈরি করা
এরপর, CREATE TRIGGER কমান্ড ব্যবহার করে ট্রিগারটি তৈরি করতে হবে এবং নির্দিষ্ট ইভেন্ট এবং টেবিলের সাথে এটি যুক্ত করতে হবে।
উদাহরণ:
CREATE TRIGGER user_update_trigger
AFTER UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION audit_user_update();
এই ট্রিগারটি users টেবিলের ওপর AFTER UPDATE ইভেন্ট ঘটলে কার্যকর হবে এবং audit_user_update ফাংশনটি চালু করবে।
Trigger এর বিভিন্ন ধরনের
BEFORE Trigger: এটি নির্দিষ্ট ইভেন্টের আগে কাজ করে। সাধারণত ডেটা ভ্যালিডেশনের জন্য ব্যবহার হয়।
CREATE TRIGGER before_insert_trigger BEFORE INSERT ON users FOR EACH ROW EXECUTE FUNCTION validate_user_data();AFTER Trigger: এটি নির্দিষ্ট ইভেন্টের পরে কাজ করে। সাধারণত ডেটাবেস আপডেট বা লগিংয়ের জন্য ব্যবহার হয়।
CREATE TRIGGER after_update_trigger AFTER UPDATE ON users FOR EACH ROW EXECUTE FUNCTION update_user_activity();INSTEAD OF Trigger: এটি ডেটাবেসে কোনো রেকর্ড ইনসার্ট, আপডেট বা ডিলিট হওয়ার পরিবর্তে অন্য একটি কাস্টম অ্যাকশন চালায়।
CREATE TRIGGER instead_of_trigger INSTEAD OF DELETE ON users FOR EACH ROW EXECUTE FUNCTION mark_user_as_deleted();
Trigger এর সুবিধা
- ডেটা অটোমেশন: ট্রিগারের মাধ্যমে অনেক কাজ স্বয়ংক্রিয়ভাবে পরিচালনা করা যায় যেমন ডেটা ভ্যালিডেশন, লোগিং, বা হিসাব রাখা।
- ডেটাবেসের অখণ্ডতা বজায় রাখা: ট্রিগার ব্যবহার করে ডেটা পরিবর্তনের পরেও অখণ্ডতা নিশ্চিত করা যায়।
- ডেটা ক্যাপচার: ট্রিগারের মাধ্যমে ডেটাবেসে হওয়া পরিবর্তনগুলি লগ করা এবং অডিট ট্রেইল তৈরি করা যায়।
সারাংশ
Trigger হল একটি শক্তিশালী ডেটাবেস ফিচার যা নির্দিষ্ট ইভেন্টের পর বা আগে অটোমেটিকভাবে নির্দিষ্ট কাজ সম্পাদন করে। PostgreSQL এ ট্রিগার ব্যবহারের মাধ্যমে আপনি ডেটা অডিটিং, ভ্যালিডেশন, অটোমেটিক ডেটা আপডেট ইত্যাদি কাজ করতে পারেন। ট্রিগারগুলি ডেটাবেসের কার্যক্রমকে আরও লচিল এবং কার্যকরী করে তোলে, কারণ এটি স্বয়ংক্রিয়ভাবে কাজ করে এবং ডেটাবেসের অখণ্ডতা ও নিরাপত্তা নিশ্চিত করতে সহায়তা করে।
Read more